#include "vx_listwidget.h"

vx_listwidget::vx_listwidget(QWidget *parent) :
    QListWidget(parent)
{
    this->setStyleSheet(
        "QListWidget{"
        "border:none;"
        "background-color:#d7d4d2;"
        "}"

        "QListWidget::item{"
        "border:none;"
        "}"

        "QScrollBar::vertical{"
        "background-color:rgb(215, 212, 210);"   // 设置背景为透明
        "width:10px;"               // 设置滑动条宽度
        "}"

        "QScrollBar::handle:vertical {"
        "background: #b8b6b4;"  // 设置滑块颜色
        "border-radius: 4px;"   // 滑块圆角
        "min-height: 150px;"           // 确保最小高度为150px
        "}"

        "QScrollBar::sub-line:vertical, QScrollBar::add-line:vertical {"
        "height: 0px;"                // 隐藏顶部和底部按钮
        "background: none;"           // 隐藏按钮背景
        "}"
    );


    //设置交互行为
    this->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); // 像素滚动
    this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);    // 关闭水平滚动条



}

vx_listwidget::~vx_listwidget()
{

}

void vx_listwidget::addFriend(const QString& avatarPath, const QString& name, const QString& message, const QString& time, const QString& friendId)
{
    // 创建好友单元控件
    vx_cell *cell = new vx_cell(avatarPath, name, message, time, friendId, this);

    // 创建 QListWidgetItem
    QListWidgetItem *item = new QListWidgetItem(this);

    // 设置 item 的尺寸与 cell 保持一致
    item->setSizeHint(cell->sizeHint());

    // 将 cell 添加到 QListWidget 中
    this->addItem(item);
    this->setItemWidget(item, cell);

    // 连接 cell 的信号到列表控件的信号
    connect(cell, &vx_cell::cellClicked, this, &vx_listwidget::cellClicked);
}

